import pandas as pd
from config import gylz_config, gygx_config
import warnings
from config.excel_config import column_name
from utils import clean_utils
from clean_data.common.mateGoodsAndYYMC import mate_CPMC, mate_YYMC
from config.excel_config import gy_column_types
warnings.filterwarnings('ignore')


# 销售日期B -> 出库时间C2
# 商品名称D -> 配送商备案产品I2
# 生产产家F -> 生产厂家J2
# 客户名称H -> 医院名称L2
# 数量J -> 数量U2
# 批号L -> 批次信息AD2
# 含税单价M -> 单价V2
# 货主名称S ->  配送商H2
def clean_data(selenium_excel_file_url, excel_file_url, scraping_name):
    df = pd.read_excel(selenium_excel_file_url, dtype=gy_column_types)
    # 客户名称L2
    # df['商品名称'].replace("D-二聚体检测试剂盒(荧光免疫层析法)", "D—二聚体检测试剂盒(荧光免疫层析法)", inplace=True)
    # df['商品名称'].replace("绒毛膜促性腺激素β亚单位检测试剂盒（荧光免疫层析法", "绒毛膜促性腺激素β亚单位检测试剂盒(荧光免疫层析法)", inplace=True)
    # df['商品名称'].replace("心肌肌钙蛋白I/氨基末端脑钠肽前体/D-二聚体联合检测试剂盒(荧光免疫层析法)", "心肌肌钙蛋白I/氨基末端脑钠肽前体/D—二聚体联合检测试剂盒(荧光免疫层析法)", inplace=True)
    # df['商品名称'].replace("D-二聚体测定试剂盒(荧光免疫层析法）", "D—二聚体测定试剂盒(荧光免疫层析法)", inplace=True)
    # df['客户名称'].replace("南宁市第二人民医院", '南宁市第二人民医院五象分院', inplace=True)
    # df['客户名称'].replace("广西壮族自治区南溪山医院", '广西壮族自治区南溪山医院（广西壮族自治区第二人民医院）', inplace=True)
    df['货主名称'].replace("国药控股广西有限公司(FY器械)", "国药控股广西有限公司", inplace=True)
    df['货主名称'].replace("国药控股柳州有限公司(FY器械)", "国药控股柳州有限公司", inplace=True)
    exception_msg = ['' for _ in df['商品编号']]
    CPMC_PSS = df['商品名称']
    KHMC_PSS = df['客户名称']
    if scraping_name == "国药广西":
        name = '国药控股广西有限公司'
    else:
        name = '国药控股柳州有限公司'

    # CPMC_GSNB, CPBM_PSS, CPBM_GSNB = mate_CPMC(df['商品编号'], name, exception_msg)
    # YYMC_GSNB, YYBM_PSS, YYBM_GSNB = mate_YYMC(df['客户编码'], name, exception_msg)
    CPMC_GSNB, CPBM_PSS, CPBM_GSNB = ['']*len(df['商品编号']), df['商品编号'], ['']*len(df['商品编号'])
    YYMC_GSNB, YYBM_PSS, YYBM_GSNB = ['']*len(df['商品编号']), df['客户编码'], ['']*len(df['商品编号'])

    df['ID'] = None
    if scraping_name == '国药广西':
        # 加上id
        if len(df.index) != 0:
            # df['ID'] = gygx_config.id_prefix + df.index.map(lambda x: f'{x + 1:03d}')
            df['ID'] = clean_utils.get_ids(gygx_config.id_prefix, df['销售日期'].tolist())
        # 加上数据源
        df['数据来源'] = gygx_config.data_source
    else:
        # 加上id
        if len(df.index) != 0:
            # df['ID'] = gylz_config.id_prefix + df.index.map(lambda x: f'{x + 1:03d}')
            df['ID'] = clean_utils.get_ids(gylz_config.id_prefix, df['销售日期'].tolist())
        # 加上数据源
        df['数据来源'] = gylz_config.data_source
    data = {
        column_name['ID']: df['ID'],
        column_name['CKSJ']: df['销售日期'],
        column_name['PSS']: [name for _ in range(len(CPMC_PSS))],
        # column_name['PSS']:df['货主名称'],
        column_name['CPMC_PSS']: CPMC_PSS,
        column_name['CPMC_GSNB']: CPMC_GSNB,
        column_name['CPBM_PSS']: CPBM_PSS,
        column_name['CPBM_GSNB']: CPBM_GSNB,
        column_name['SCCJ']: df['生产厂家'],
        column_name['KHMC_PSS']: KHMC_PSS,
        column_name['YYMC_GSNB']: YYMC_GSNB,
        column_name['KHBM']: YYBM_PSS,
        column_name['YYBM']: YYBM_GSNB,
        column_name['SL']: df['数量'],
        column_name['DJ']: df['含税单价'],
        column_name['PCXX']: df['批号'],
        column_name['LHXX']: df['货主名称'],
        column_name['SJLY']: df['数据来源'],
        column_name['YC']: exception_msg
    }

    # for key in data.keys():
    #     print(f"{key}: {len(data[key])}")

    df = pd.DataFrame(data)
    df.to_excel(excel_file_url, index=False)


if __name__ == '__main__':
     clean_data(gygx_config.selenium_excel_file_url, gygx_config.excel_file_url, '国药广西')
     #clean_data(gylz_config.selenium_excel_file_url, gylz_config.excel_file_url, '国药柳州')
